.. _modbus-read: Modbus read ------------- Modbus read – Bloczek służy do odczytu wartości pochodzących z portów RS485 Modbus RTC .. image:: _static/ikona_modbus-read.png :width: 145 :height: 60 :alt: Modbus_read Opis parametrów ikony ~~~~~~~~~~~~~~~~~~~~~~ .. image:: _static/ikona_modbus-read1.png :width: 162 :height: 55 :alt: modbus-read opis * **1** - Wejście sygnału wyzwalającego. * **2** - Nazwa bloczka nadana przez użytkownika. * **3-4** - Wyjśćia sygnałowe. * **5** - Stan bloczka: zielony – działa, czerwony - błąd. * **6** - Komunikaty bloczka. Wejście(1) ~~~~~~~~~~~~~~~~~~~~~~ Wejście dla wyzwolenia odczytu. Gdy do wejścia podłączony jest sygnał to bloczek odczytuje wartości, jedynie gdy na wejście podawany jest sygnał określony w "Zbocze wyzwalające". Jeżeli wejście nie jest podłączone to bloczek zostaje automatycznie uruchomiony i będzie działać z częstotliwością ustawioną w "Interwał odświeżania [ms]". Wyjścia(3-4) ~~~~~~~~~~~~~~~~~~~~~~ * **3 - Wartość** - Bloczek pobiera dane z komunikacji modbus i wysyła je za pomocą wyjścia. Gdy bloczek nie może odczytać wartości wyjśćie nie wystawia sygnału. * **4 - Podłączony** - Wyjście wystawiające wartość true(1), gdy bloczek poprawnie odczytuje przesyłaną wartość. W przeciwnym wypadku wystawi wartość false(0). Komunikaty bloczka (6) ~~~~~~~~~~~~~~~~~~~~~~~~ Opis pod bloczkiem zawiera informację o stanie bloczka lub możliwym błędzie: * **null** - System sprawny - Wartość początkowa (podczas uruchamiania systemu). * **Wartość numeryczna** - System sprawny - W przypadku prawidłowego odczytu z modbus'a w opisie bloczka znajduje się odczytana wartość. * **Invalid input edge configuration** - Błąd - Nieprawidłowe zbocze wyzwalające. * **Invalid function code configuration** - Błąd - Nieprawidłowy kod funkcji. * **Invalid device address configuration** - Błąd - Nieprawidłowy adres urządzenia. * **Invalid register address configuration** - Błąd - Nieprawidłowy adres rejestru. * **Invalid bit count configuration** - Błąd - Nieprawidłowa wartość bit count. * **Invalid value type configuration** - Błąd - Nieprawidłowy typ wartości. * **Invalid divisor configuration** - Błąd - Nieprawidłowa wartość dzielnika. * **Invalid precision configuration** - Błąd - Nieprawidłowa wartość precyzji. * **Invalid endianess configuration** - Błąd - Nieprawidłowa wartość endianess. * **Invalid refresh interval configuration** - Błąd - Nieprawidłowa wartość interwału odświeżania. * **Invalid response timeout configuration** - Błąd - Nieprawidłowa wartość opóźnienia odpowiedzi. * **Missing RS485 configuration** - Błąd - Nieprawidłowa wartość RS485. * **RS485 setup incomplete** - Błąd - Niekompletna konfiguracja RS485. * **RS485 port missing** - Błąd - Brak konfiguracji portu. * **Baudrate configuration mismatch** - Błąd - Nieprawidłowa wartość baudrate. * **Parity configuration mismatch** - Błąd - Nieprawidłowa parzystość. * **Stop bits configuration mismatch** - Błąd - Nieprawidłowa wartość bitów stopu. * **Invalid baudrate configuration** - Błąd - Nieprawidłowa wartość baudrate. * **Invalid parity configuration** - Błąd - Nieprawidłowa parzystość. * **Invalid stop bits configuration** - Błąd - Nieprawidłowa wartość bitów stopu. * **Invalid parity or stop bits configuration** - Błąd - Nieprawidłowa parzystość lub wartość bitów stopu. * **Expected 0 or 1 on input** - Błąd - Oczekiwana wartość na wejściu 0 lub 1. * **Failed to parse value** - Błąd - Błąd podczas przetwarzania wartośći. * **Value exceeds 16-bits** - Błąd - Nieprawidłowa wartość przekracza 16 - bitów. * **Value exceeds 32-bits** - Błąd - Nieprawidłowa wartość przekracza 32 - bitów. * **Value exceeds 32-bit float** - Błąd - Nieprawidłowa wartość przekracza 32 - bitów float. * **Failed to create request data** - Błąd - Nieprawidłowa wartość odczytu danych. * **Negative value** - Błąd - Wartość ujemna. * **Value too large for bit count** - Błąd - Wartość przekracza pojemność bufora. * **Failed to create request data** - Błąd - Błąd tworzenia odpowiedzi. * **Function code not supported** - Błąd - Wartość nieobsługiwana. * **Invalid address** - Błąd - Błąd adresu. * **Invalid quantity** - Błąd - Błąd. * **IO error** - Błąd - Błąd wejść. * **Unknown modbus exception code** - Błąd - Nieprawidłowa wartość kodu. * **Master/RS485 timeout** - Błąd - Przekroczono czas oczekiwania dla master. * **Slave timeout** - Błąd - Przekroczono czas oczekiwania dla slave. * **Invalid request** - Błąd - Błąd odpowiedzi. * **Internal error** - Błąd - Błąd wewnętrzny. * **RS485 busy** - Błąd - RS485 port zajęty. * **RS485 RX overrun** - Błąd - Port RS485 odczyt przekroczył wartość. * **RS485 frame error** - Błąd - Port RS485 błąd ramki danych. Konfiguracja - Properties ~~~~~~~~~~~~~~~~~~~~~~~~~~ Ustawienia dostępne po podwójnym kliknięciu prawym przyciskiem myszy. .. image:: _static/modbus-read_properties.png :width: 417 :height: 663 :alt: modbus-read_properties **Nazwa** - Nazwa bloczka nadana przez użytkownika. **Zbocze wyzwalające** - Rodzaj sygnału powodującego wyzwolenie: * Zbocze opadające (Falling) - Zmiana z 1 na 0. * Zbocze narastające (Rising) - Zmiana z 0 na 1. * Zbocze narastające lub opadające (Rising or Falling) - Zmiana z 1 na 0 lub z 0 na 1. **Kod funkcji** - Typ komunikacji (należy odczytać z instrukcji urządzenia): * FC 1 Read Coil - Odczyt pojedynczej komórki. * FC 2 Discrete Input Contacts - Odczyt stanu wejść dyskretnych. * FC 3 Read Holding Registers - Odczyt danych z rejestrów przechowujących wartości. * FC 4 Read Input Registers - Odczyt danych z rejestrów wejściowych. **Adres urządzenia** - Adres urządzenia. Należy odczytać z instrukcji urządzenia. **Adres rejestru** - Adres rejestru do odczytu. Należy odczytać z instrukcji urządzenia. **Ilość bitów** - Ilość bitów do odczytu. Należy odczytać z instrukcji urządzenia. **Interwał odświeżania [ms]** - Czas co jaki będzie odczytywana wartość Modbus, jeżeli wartość ta jest równa 0 to odczyt realizowany jedynie w przypadku wyzwolenia zewnętrznego (podanie sygnału wyzwalającego na wejściu bloczka). **Opóźnienie odpowiedzi [ms]** - Czas jaki system czeka na odpowiedź. **Dzielnik** - Wartość przez jaką zostanie podzielona wartość odczytana. **Precyzja** - Dokładność z jaką zostanie wygenerowana odczytana dana. **Endianess** - Określenie sposobu zakończenia komunikacji. Należy odczytać z instrukcji urządzenia: * NoSwap - LittleEndian. * SwapBytesAndWords - BigEndian. * Bajty w słowie BigEndian, słowa w LittleEndian. * Bajty w słowie LittleEndian, słowa BigEndian. Konfiguracja klienta ~~~~~~~~~~~~~~~~~~~~~~ Konfiguracja transmisji danych możliwa do zapisania i wykorzystania jako profil w innych bloczkach z komunikacją modbus. .. image:: _static/modbus_wezel.png :width: 510 :height: 374 :alt: modbus_wezel **Baudrate** - Prędkość transmisji danych. **Parzystość** - Ustawienia dotyczące bitu parzystego. **Bity stopu** - Ilość bitów rozdzielająca znaki. **Liczba prób wysłania rozkazu po których powiadomić o błędzie** - Dopiero przy przekroczeniu ustawionej wartości prób bloczek powiadomi o błędzie. W czasie trwania prób wystawi na wyjście wartość null. Przykładowe wykorzystanie bloku ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Pobieranie i wyświetlanie zużycia mocy czynnej w czasie rzeczywistym .. image:: _static/modbus_read_przyklad2.png :width: 538 :height: 97 :alt: modbus-read_przyklad2 Opis działania układu: Bloczek modbus-read skonfigurowany jest do pracy z fizycznym urządzeniem LE-01MW. Urządzenie to zlicza aktualną wartość zużywanej mocy czynnej i przekazuje ją do bloczka modbus-read. Po oznaczeniu wartości za pomocą bloczka tag podajemy sygnał do bloczka app-label, który umożliwia wyświetlanie zebranej danej w aplikacji Fox. Widok z aplikacji Fox: .. image:: _static/modbus_read_fox.jpeg :width: 316 :height: 312 :alt: modbus-read_przyklad5 Konfiguracja bloczka modbus-read na podstawie dokumentacji licznika dostępnej na stronie producenta: .. image:: _static/modbus_read_przyklad2_konf.png :width: 505 :height: 646 :alt: modbus-read_przyklad4 .. image:: _static/modbus_read_przyklad2_konf1.png :width: 514 :height: 319 :alt: modbus-read_przyklad3 Sterowanie włączeniem i wyłączeniem klimatyzatora w zależności od temperatury w pomieszczeniu .. image:: _static/modbus_read_przyklad1.png :width: 650 :height: 165 :alt: modbus-read_przyklad1 Opis działania układu: Wartość temperatury pobrana za pomocą modbus-read z fizycznego urządzenia porównywana jest z maksymalną dozwoloną temperaturą. Jeżeli temperatura zmierzona przekroczy wartość ustaloną przez nas w bloczku const to comparator wystawi wartość true(1) i załączy klimatyzator. .. toctree:: :maxdepth: 2 :hidden: :caption: Interfejs użytkownika oprogramowanie/foldery oprogramowanie/konfigurator oprogramowanie/devices oprogramowanie/gate oprogramowanie/przeglad oprogramowanie/zdalny_dostep .. toctree:: :maxdepth: 2 :hidden: :caption: Urządzenia oprogramowanie/input oprogramowanie/output .. toctree:: :maxdepth: 2 :hidden: :caption: Moduły oprogramowanie/dimmer oprogramowanie/command oprogramowanie/d-latch oprogramowanie/impulse-generator oprogramowanie/impulse-counter oprogramowanie/click-analyzer oprogramowanie/astro-timer oprogramowanie/clock-timer .. toctree:: :maxdepth: 2 :hidden: :caption: Bramki logiczne oprogramowanie/and oprogramowanie/or oprogramowanie/not .. toctree:: :maxdepth: 2 :hidden: :caption: Narzędzia oprogramowanie/math oprogramowanie/tag oprogramowanie/comparator oprogramowanie/const oprogramowanie/inject oprogramowanie/switch oprogramowanie/comment .. toctree:: :maxdepth: 2 :hidden: :caption: Modbus oprogramowanie/modbus-read copy oprogramowanie/modbus-write oprogramowanie/ac .. toctree:: :maxdepth: 2 :hidden: :caption: Mobile oprogramowanie/app_value oprogramowanie/app_button oprogramowanie/app_label .. toctree:: :maxdepth: 2 :hidden: :caption: Inne oprogramowanie/dane